@import 'mediawiki.ui/variables.less';
@import 'mw.rcfilters.mixins.less';
@import 'mw.rcfilters.variables.less';

@keyframes fadeBlue {
	60% {
		border-top-color: @color-primary;
	}

	100% {
		border-top-color: @colorGray12;
	}
}

.mw-rcfilters-ui-changesListWrapperWidget {
	position: relative;
	// `.mw-changeslist-legend` child element is floated and must be cleared (T279008#6967026).
	.mixin-clearfix();

	&-newChanges {
		min-height: 34px;
		margin: 8px 0 0 0;
		text-align: center;
	}

	&-previousChangesIndicator {
		margin: 10px 0;
		border-top: 2px solid @colorGray12;
		animation: 1s ease fadeBlue;
	}

	&-results {
		margin: 5em auto;

		&-noresult,
		&-conflict {
			margin-bottom: 0.5em;
			font-weight: bold;
			text-align: center;
		}
	}

	// Rule needs to be specific
	// We want the expand button to appear outside the color
	// to match the way the general highlight background appears
	&-enhanced-grey td:not( :nth-child( -n+2 ) ) {
		background-color: @light-gray;
	}

	&-highlighted {
		ul {
			list-style: none;

			li {
				list-style: none;
			}
		}
	}

	.mw-changeslist-legend {
		background-color: @background-color-base;
		position: relative; // We want to keep the legend accessible when results are overlaid
		z-index: 1; // Keep opacity-animated highlights from appearing on top of the legend
		border: 1px solid @colorGray12;
	}

	.mw-changeslist-overlay {
		position: absolute;
		display: none;
		width: 100%;
		height: 100%;
	}

	&--overlaid > .mw-changeslist-overlay {
		display: block;
	}

	// Correction for Enhanced RC
	// This is outside the scope of the 'highlights' wrapper
	table.mw-enhanced-rc {
		td:last-child {
			width: 100%;
		}
	}
}

.mw-rcfilters-ui-highlights {
	display: none;
	padding: 0 @margin-circle 0 0;
	// The width is 5 circles times their diameter + individual margin
	// and then plus the general margin
	width: ~'calc( ( @{size-circle-result} + @{margin-circle-result} ) * 5 )';
	// And we want to shift the entire block to the left of the li
	position: relative;
	// Negative left margin of width + padding
	margin-left: ~'calc( ( @{size-circle-result} + @{margin-circle-result} ) * -5 - @{margin-circle} )';

	.mw-rcfilters-ui-changesListWrapperWidget-highlighted & {
		display: inline-block;
	}

	// This needs to be very specific, since these are
	// position rules that should apply to all overrides
	.mw-rcfilters-ui-changesListWrapperWidget & > div {
		vertical-align: middle;
		.mw-rcfilters-circle( @size-circle-result, @size-circle-result, 0 );
		// This is to make the dots appear at the center of the
		// text itself; it's a horrendous hack and blame JamesF for it.
		margin-top: -2px;
		margin-right: @margin-circle-result;
		float: right;
	}

	&-color {
		&-none {
			.mw-rcfilters-circle-color( @highlight-none, true );
			display: inline-block;

			.mw-rcfilters-highlight-color-c1 &,
			.mw-rcfilters-highlight-color-c2 &,
			.mw-rcfilters-highlight-color-c3 &,
			.mw-rcfilters-highlight-color-c4 &,
			.mw-rcfilters-highlight-color-c5 & {
				display: none;
			}
		}
		.result-circle( c1 );
		.result-circle( c2 );
		.result-circle( c3 );
		.result-circle( c4 );
		.result-circle( c5 );
	}
}

// One color
.mw-rcfilters-highlight-color-c1 {
	.highlight-results( tint( @highlight-c1, 70% ); );
}

.mw-rcfilters-highlight-color-c2 {
	.highlight-results( tint( @highlight-c2, 70% ); );
}

.mw-rcfilters-highlight-color-c3 {
	.highlight-results( tint( @highlight-c3, 70% ); );
}

.mw-rcfilters-highlight-color-c4 {
	.highlight-results( tint( @highlight-c4, 70% ); );
}

.mw-rcfilters-highlight-color-c5 {
	.highlight-results( tint( @highlight-c5, 70% ); );
}

// Two colors
.highlight-color-mix( c1, c2 );
// Overriding .highlight-color-mix( c1, c3 ); to produce
// a custom color rather than the computed tint
// see https://phabricator.wikimedia.org/T161267
.mw-rcfilters-highlight-color-c1.mw-rcfilters-highlight-color-c3 {
	.highlight-results( @light-green );
}
.highlight-color-mix( c1, c4 );
.highlight-color-mix( c1, c5 );
.highlight-color-mix( c2, c3 );
.highlight-color-mix( c2, c4 );
.highlight-color-mix( c2, c5 );
.highlight-color-mix( c3, c4 );
.highlight-color-mix( c3, c5 );
.highlight-color-mix( c4, c5 );

// Three colors
.highlight-color-mix( c1, c2, c3 );
.highlight-color-mix( c1, c2, c5 );
.highlight-color-mix( c1, c2, c4 );
.highlight-color-mix( c1, c3, c4 );
.highlight-color-mix( c1, c3, c5 );
.highlight-color-mix( c1, c4, c5 );
.highlight-color-mix( c2, c3, c4 );
.highlight-color-mix( c2, c3, c5 );
.highlight-color-mix( c2, c4, c5 );
.highlight-color-mix( c3, c4, c5 );

// Four colors
.highlight-color-mix( c1, c2, c3, c4 );
.highlight-color-mix( c1, c2, c3, c5 );
.highlight-color-mix( c1, c2, c4, c5 );
.highlight-color-mix( c1, c3, c4, c5 );
.highlight-color-mix( c2, c3, c4, c5 );

// Five colors
.mw-rcfilters-highlight-color-c1.mw-rcfilters-highlight-color-c2.mw-rcfilters-highlight-color-c3.mw-rcfilters-highlight-color-c4.mw-rcfilters-highlight-color-c5 {
	.highlight-results( tint( mix( @highlight-c1, mix( @highlight-c2, mix( @highlight-c3, average( @highlight-c4, @highlight-c5 ), 20% ), 20% ), 20% ), 15% ) );
}

@media screen and ( min-width: @width-breakpoint-tablet ) {
	// center conflict message
	// e.g. Special:RecentChanges?goodfaith=maybebad&hidepageedits=1&hidenewpages=1&hidecategorization=1&hideWikibase=1&limit=50&days=0.0833&enhanced=1&urlversion=2
	// More context in https://phabricator.wikimedia.org/T223363#5374874
	.mw-rcfilters-ui-changesListWrapperWidget {
		&-results {
			width: 35em;
		}
	}
}
